The present invention relates to a musical tone generating apparatus for an electronic musical instrument, wherein a musical tone is generated and produced on the basis of waveform information obtained by collecting and storing external sounds.
A conventional electronic musical instrument records external sounds with a microphone, samples these sounds at a predetermined period, and storing obtained waveform levels in a RAM (Random Access Memory). In order to produce a musical tone on the basis of such waveform information stored in the RAM, a plurality of waveforms stored in the RAM can be synthesized to produce a synthesized or composite waveform. In this case, when different waveforms are simply synthesized, clear composite musical tones cannot be obtained because tone pitches of the waveforms are different, the waveforms do not have a predetermined mixing ratio, or the lengths of time required for producing a tone in the waveforms are different from each other.
When such a synthesis is to be performed, leading edges of the waveforms of the external sounds are normally different from each other. Simple synthesis cannot provide a clear synthesized or composite tone, and the resultant tone cannot be used as a musical tone at all.
Another conventional electronic musical instrument reproduces a musical tone by repeatedly reading out a waveform information, i.e., by performing loop reproduction, as described in Japanese Patent Disclosure (Kokai) No. 55-28072 and U.S. Pat. Nos. 4,442,745 and 4,502,361.
In a conventional electronic musical instrument of the loop reproduction type described above, a loop interval to be specified is fixed, or the loop interval is preset by the manufacturer. For this reason, the waveform memory cannot be effectively utilized. In order to obtain a variety of sound source waveforms, another sampling waveform is undesirably required.
When loop reproduction is performed in a conventional electronic musical instrument, start address data of the loop reproduction interval, that is, loop start address data, and the end address data of the loop reproduction interval, that is, loop end address data must be preset. When reproduction address data, i.e., current address data, reaches the loop end address, loop start address data must be written in a current address register.
However, according to the above scheme, when the current address data is updated to the loop start address data near the loop end address, a smooth waveform cannot be often obtained and the resultant tone is not smoothly reproduced. In addition, click noise corresponding to the repetition interval of the loop reproduction interval is undesirably mixed in the reproduced tone.